c&&(this.tickInterval*=2,this.setTickPositions());if(q(d)){for(a=c=b.length;a--;)(3===d&&a%2===1||2>=d&&a>0&&c-1>a)&&b.splice(a,1);this.finalTickAmt=A}},setScale:function(){var a,b;this.oldMin=this.min,this.oldMax=this.max,this.oldAxisLength=this.len,this.setAxisSize(),b=this.len!==this.oldAxisLength,o(this.series,function(b){(b.isDirtyData||b.isDirty||b.xAxis.isDirty)&&(a=!0)}),b||a||this.isLinked||this.forceRedraw||this.userMin!==this.oldUserMin||this.userMax!==this.oldUserMax||this.alignToOthers()?(this.resetStacks&&this.resetStacks(),this.forceRedraw=!1,this.getSeriesExtremes(),this.setTickInterval(),this.oldUserMin=this.userMin,this.oldUserMax=this.userMax,this.isDirty||(this.isDirty=b||this.min!==this.oldMin||this.max!==this.oldMax)):this.cleanStacks&&this.cleanStacks()},setExtremes:function(a,b,c,d,e){var f=this,g=f.chart,c=p(c,!0);o(f.series,function(a){delete a.kdTree}),e=u(e,{min:a,max:b}),H(f,"setExtremes",e,function(){f.userMin=a,f.userMax=b,f.eventArgs=e,c&&g.redraw(d)})},zoom:function(a,b){var c=this.dataMin,d=this.dataMax,e=this.options,f=F(c,p(e.min,c)),e=t(d,p(e.max,d));return this.allowZoomOutside||(q(c)&&f>=a&&(a=f),q(d)&&b>=e&&(b=e)),this.displayBtn=a!==A||b!==A,this.setExtremes(a,b,!1,A,{trigger:"zoom"}),!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,e=p(b.width,a.plotWidth-c+(b.offsetRight||0)),f=p(b.height,a.plotHeight),g=p(b.top,a.plotTop),b=p(b.left,a.plotLeft+c),c=/%$/;c.test(f)&&(f=Math.round(parseFloat(f)/100*a.plotHeight)),c.test(g)&&(g=Math.round(parseFloat(g)/100*a.plotHeight+a.plotTop)),this.left=b,this.top=g,this.width=e,this.height=f,this.bottom=a.chartHeight-f-g,this.right=a.chartWidth-e-b,this.len=t(d?e:f,0),this.pos=d?b:g},getExtremes:function(){var a=this.isLog;return{min:a?ea(na(this.min)):this.min,max:a?ea(na(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=b?na(this.min):this.min,b=b?na(this.max):this.max;return null===a?a=0>b?b:c:c>a?a=c:a>b&&(a=b),this.translate(a,0,1,0,1)},autoLabelAlign:function(a){return a=(p(a,0)-90*this.side+720)%360,a>15&&165>a?"right":a>195&&345>a?"left":"center"},unsquish:function(){var g,k,m,a=this.ticks,b=this.options.labels,c=this.horiz,d=this.tickInterval,e=d,f=this.len/(((this.categories?1:0)+this.max-this.min)/d),h=b.rotation,i=this.chart.renderer.fontMetrics(b.style.fontSize,a[0]&&a[0].label),j=Number.MAX_VALUE,l=function(a){return a/=f||1,a=a>1?ua(a):1,a*d};return c?(m=!b.staggerLines&&!b.step&&(q(h)?[h]:f=-90&&90>=a)&&(k=l(P(i.h/$(fa*a))),b=k+P(a/360),j>b&&(j=b,g=a,e=k))}):b.step||(e=l(i.h)),this.autoRotation=m,this.labelRotation=p(g,h),e},renderUnsquish:function(){var m,n,r,a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,e=this.options.labels,f=this.horiz,g=a.margin,h=this.categories?c.length:c.length-1,g=this.slotWidth=f&&(e.step||0)<2&&!e.rotation&&(this.staggerLines||1)*a.plotWidth/h||!f&&(g[3]&&g[3]-a.spacing[3]||.33*a.chartWidth),i=t(1,B(g-2*(e.padding||5))),k={},h=b.fontMetrics(e.style.fontSize,d[0]&&d[0].label),j=e.style.textOverflow,l=0;if(xa(e.rotation)||(k.rotation=e.rotation||0),this.autoRotation)o(c,function(a){(a=d[a])&&a.labelLength>l&&(l=a.labelLength)}),l>i&&l>h.h?k.rotation=this.labelRotation:this.labelRotation=0;else if(g&&(m={width:i+"px"},!j))for(m.textOverflow="clip",n=c.length;!f&&n--;)r=c[n],(i=d[r].label)&&("ellipsis"===i.styles.textOverflow&&i.css({textOverflow:"clip"}),(i.getBBox().height>this.len/c.length-(h.h-h.f)||d[r].labelLength>g)&&(i.specCss={textOverflow:"ellipsis"}));k.rotation&&(m={width:(l>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},!j)&&(m.textOverflow="ellipsis"),(this.labelAlign=e.align||this.autoLabelAlign(this.labelRotation))&&(k.align=this.labelAlign),o(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(k),m&&b.css(D(m,b.specCss)),delete b.specCss,a.rotation=k.rotation)}),this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,0!==this.side)},hasData:function(){return this.hasVisibleSeries||q(this.min)&&q(this.max)&&!!this.tickPositions},getOffset:function(){var k,j,l,u,a=this,b=a.chart,c=b.renderer,d=a.options,e=a.tickPositions,f=a.ticks,g=a.horiz,h=a.side,i=b.inverted?[1,0,3,2][h]:h,m=0,n=0,r=d.title,s=d.labels,R=0,v=a.opposite,x=b.axisOffset,b=b.clipOffset,w=[-1,1,1,-1][h],ba=a.axisParent;if(k=a.hasData(),a.showAxis=j=k||p(d.showEmpty,!0),a.staggerLines=a.horiz&&s.staggerLines,a.axisGroup||(a.gridGroup=c.g("grid").attr({zIndex:d.gridZIndex||1}).add(ba),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).add(ba),a.labelGroup=c.g("axis-labels").attr({zIndex:s.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels").add(ba)),k||a.isLinked)o(e,function(b){f[b]?f[b].addLabel():f[b]=new Va(a,b)}),a.renderUnsquish(),s.reserveSpace!==!1&&(0===h||2===h||{1:"left",3:"right"}[h]===a.labelAlign||"center"===a.labelAlign)&&o(e,function(a){R=t(f[a].getLabelSize(),R)}),a.staggerLines&&(R*=a.staggerLines,a.labelOffset=R*(a.opposite?-1:1));else for(u in f)f[u].destroy(),delete f[u];r&&r.text&&r.enabled!==!1&&(a.axisTitle||(a.axisTitle=c.text(r.text,0,0,r.useHTML).attr({zIndex:7,rotation:r.rotation||0,align:r.textAlign||{low:v?"right":"left",middle:"center",high:v?"left":"right"}[r.align]}).addClass("highcharts-"+this.coll.toLowerCase()+"-title").css(r.style).add(a.axisGroup),a.axisTitle.isNew=!0),j&&(m=a.axisTitle.getBBox()[g?"height":"width"],l=r.offset,n=q(l)?0:p(r.margin,g?5:10)),a.axisTitle[j?"show":"hide"](!0)),a.offset=w*p(d.offset,x[h]),a.tickRotCorr=a.tickRotCorr||{x:0,y:0},c=2===h?a.tickRotCorr.y:0,g=Math.abs(R)+n+(R&&w*(g?p(s.y,a.tickRotCorr.y+8):s.x)-c),a.axisTitleMargin=p(l,g),x[h]=t(x[h],a.axisTitleMargin+m+w*a.offset,g),d=d.offset?0:2*S(d.lineWidth/2),b[i]=t(b[i],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,e=this.horiz,f=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;return c&&(a*=-1),b.renderer.crispLine(["M",e?this.left:f,e?d:this.top,"L",e?b.chartWidth-this.right:f,e?d:b.chartHeight-this.bottom],a)},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,e=this.options.title,f=a?b:c,g=this.opposite,h=this.offset,i=e.x||0,k=e.y||0,j=C(e.style.fontSize||12),d={low:f+(a?0:d),middle:f+d/2,high:f+(a?d:0)}[e.align],b=(a?c+this.height:b)+(a?1:-1)*(g?-1:1)*this.axisTitleMargin+(2===this.side?j:0);return{x:a?d+i:b+(g?this.width:0)+h+i,y:a?b+k-(g?this.height:0)+h:d+k}},render:function(){var s,w,t,a=this,b=a.chart,c=b.renderer,d=a.options,e=a.isLog,f=a.isLinked,g=a.tickPositions,h=a.axisTitle,i=a.ticks,k=a.minorTicks,j=a.alternateBands,m=d.stackLabels,l=d.alternateGridColor,n=a.tickmarkOffset,r=d.lineWidth,p=b.hasRendered&&q(a.oldMin)&&!isNaN(a.oldMin),v=a.showAxis,x=c.globalAnimation;a.labelEdge.length=0,a.overlap=!1,o([i,k,j],function(a){for(var b in a)a[b].isActive=!1}),(a.hasData()||f)&&(a.minorTickInterval&&!a.categories&&o(a.getMinorTickPositions(),function(b){k[b]||(k[b]=new Va(a,b,"minor")),p&&k[b].isNew&&k[b].render(null,!0),k[b].render(null,!1,1)}),g.length&&(o(g,function(b,c){(!f||b>=a.min&&b<=a.max)&&(i[b]||(i[b]=new Va(a,b)),p&&i[b].isNew&&i[b].render(c,!0,.1),i[b].render(c))}),n&&(0===a.min||a.single))&&(i[-1]||(i[-1]=new Va(a,-1,null,!0)),i[-1].render(-1)),l&&o(g,function(c,d){t=g[d+1]!==A?g[d+1]+n:a.max-n,d%2===0&&c=G.second?0:j*S(i.getMilliseconds()/j)),k>=G.second&&i[Hb](k>=G.minute?0:j*S(i.getSeconds()/j)),k>=G.minute&&i[Ib](k>=G.hour?0:j*S(i[tb]()/j)),k>=G.hour&&i[Jb](k>=G.day?0:j*S(i[ub]()/j)),k>=G.day&&i[wb](k>=G.month?1:j*S(i[$a]()/j)),k>=G.month&&(i[xb](k>=G.year?0:j*S(i[ab]()/j)),h=i[bb]()),k>=G.year&&(h-=h%j,i[yb](h)),k===G.week&&i[wb](i[$a]()-i[vb]()+p(d,1)),b=1,(qb||Za)&&(i=i.getTime(),i=new qa(i+Ya(i))),h=i[bb](),d=i.getTime(),m=i[ab](),l=i[$a](),n=!g||!!Za,r=(G.day+(g?Ya(i):6e4*i.getTimezoneOffset()))%G.day;c>d;)e.push(d),k===G.year?d=kb(h+b*j,0):k===G.month?d=kb(h,m+b*j):!n||k!==G.day&&k!==G.week?d+=k*j:d=kb(h,m,l+b*j*(k===G.day?1:7)),b++;e.push(d),o(Ha(e,function(a){return k<=G.hour&&a%G.day===r}),function(a){f[a]="day"})}return e.info=u(a,{higherRanks:f,totalRange:k*j}),e},ka.prototype.normalizeTimeTickInterval=function(a,b){var g,c=b||[["millisecond",[1,2,5,10,20,25,50,100,200,500]],["second",[1,2,5,10,15,30]],["minute",[1,2,5,10,15,30]],["hour",[1,2,3,4,6,8,12]],["day",[1,2]],["week",[1,2]],["month",[1,2,3,4,6]],["year",null]],d=c[c.length-1],e=G[d[0]],f=d[1];for(g=0;ga&&(f=[1,2,5]),c=sb(a/e,f,"year"===d[0]?t(rb(a/e),1):1),{unitRange:e,count:c,unitName:d[0]}},ka.prototype.getLogTickPositions=function(a,b,c,d){var h,i,k,j,m,e=this.options,f=this.len,g=[];if(d||(this._minorAutoInterval=null),a>=.5)a=B(a),g=this.getLinearTickPositions(a,b,c);else if(a>=.08)for(f=S(b),e=a>.3?[1,2,4]:a>.15?[1,2,4,6,8]:[1,2,3,4,5,6,7,8,9];c+1>f&&!m;f++)for(i=e.length,h=0;i>h&&!m;h++)k=Da(na(f)*e[h]),k>b&&(!d||c>=j)&&j!==A&&g.push(j),j>c&&(m=!0),j=k;else b=na(b),c=na(c),a=e[d?"minorTickInterval":"tickInterval"],a=p("auto"===a?null:a,this._minorAutoInterval,(c-b)*(e.tickPixelInterval/(d?5:1))/((d?f/this.tickPositions.length:f)||1)),a=sb(a,null,rb(a)),g=Ba(this.getLinearTickPositions(a,b,c),Da),d||(this._minorAutoInterval=a/5);return d||(this.tickInterval=a),g},Pb=z.Tooltip=function(){this.init.apply(this,arguments)},Pb.prototype={init:function(a,b){var c=b.borderWidth,d=b.style,e=C(d.padding);this.chart=a,this.options=b,this.crosshairs=[],this.now={x:0,y:0},this.isHidden=!0,this.label=a.renderer.label("",0,0,b.shape||"callout",null,null,b.useHTML,null,"tooltip").attr({padding:e,fill:b.backgroundColor,"stroke-width":c,r:b.borderRadius,zIndex:8}).css(d).css({padding:0}).add().attr({y:-9999}),ga||this.label.shadow(b.shadow),this.shared=b.shared},destroy:function(){this.label&&(this.label=this.label.destroy()),clearTimeout(this.hideTimer),clearTimeout(this.tooltipTimeout)},move:function(a,b,c,d){var e=this,f=e.now,g=e.options.animation!==!1&&!e.isHidden&&(P(a-f.x)>1||P(b-f.y)>1),h=e.followPointer||e.len>1;u(f,{x:g?(2*f.x+a)/3:a,y:g?(f.y+b)/2:b,anchorX:h?A:g?(2*f.anchorX+c)/3:c,anchorY:h?A:g?(f.anchorY+d)/2:d}),e.label.attr(f),g&&(clearTimeout(this.tooltipTimeout),this.tooltipTimeout=setTimeout(function(){e&&e.move(a,b,c,d)},32))},hide:function(a){var b=this;clearTimeout(this.hideTimer),a=p(a,this.options.hideDelay,500),this.isHidden||(this.hideTimer=Pa(function(){b.label[a?"fadeOut":"hide"](),b.isHidden=!0},a))},getAnchor:function(a,b){var c,k,j,d=this.chart,e=d.inverted,f=d.plotTop,g=d.plotLeft,h=0,i=0,a=ta(a);return c=a[0].tooltipPos,this.followPointer&&b&&(b.chartX===A&&(b=d.pointer.normalize(b)),c=[b.chartX-d.plotLeft,b.chartY-f]),c||(o(a,function(a){k=a.series.yAxis,j=a.series.xAxis,h+=a.plotX+(!e&&j?j.left-g:0),i+=(a.plotLow?(a.plotLow+a.plotHigh)/2:a.plotY)+(!e&&k?k.top-f:0)}),h/=a.length,i/=a.length,c=[e?d.plotWidth-i:h,this.shared&&!e&&a.length>1&&b?b.chartY-f:e?d.plotHeight-h:i]),Ba(c,B)},getPosition:function(a,b,c){var h,d=this.chart,e=this.distance,f={},g=c.h||0,i=["y",d.chartHeight,b,c.plotY+d.plotTop,d.plotTop,d.plotTop+d.plotHeight],k=["x",d.chartWidth,a,c.plotX+d.plotLeft,d.plotLeft,d.plotLeft+d.plotWidth],j=p(c.ttBelow,d.inverted&&!c.negative||!d.inverted&&c.negative),m=function(a,b,c,d,h,i){var k=d-e>c,l=b>d+e+c,m=d-e-c;if(d+=e,j&&l)f[a]=d;else if(!j&&k)f[a]=m;else if(k)f[a]=F(i-c,0>m-g?m:m-g);else{if(!l)return!1;f[a]=t(h,d+g+c>b?d:d+g)}},l=function(a,b,c,d){var g;return e>d||d>b-e?g=!1:f[a]=c/2>d?1:d>b-c/2?b-c-2:d-c/2,g},n=function(a){var b=i;i=k,k=b,h=a},r=function(){m.apply(0,i)!==!1?l.apply(0,k)===!1&&!h&&(n(!0),r()):h?f.x=f.y=0:(n(!0),r())};return(d.inverted||this.len>1)&&n(),r(),f},defaultFormatter:function(a){var c,b=this.points||ta(this);return c=[a.tooltipFooterHeaderFormatter(b[0])],c=c.concat(a.bodyFormatter(b)),c.push(a.tooltipFooterHeaderFormatter(b[0],!0)),c.join("")},refresh:function(a,b){var f,g,h,m,l,c=this.chart,d=this.label,e=this.options,i={},j=[],k=e.formatter||this.defaultFormatter;i=c.hoverPoints,l=this.shared,clearTimeout(this.hideTimer),this.followPointer=ta(a)[0].series.tooltipOptions.followPointer,h=this.getAnchor(a,b),f=h[0],g=h[1],!l||a.series&&a.series.noSharedTooltip?i=a.getLabelConfig():(c.hoverPoints=a,i&&o(i,function(a){a.setState()}),o(a,function(a){a.setState("hover"),j.push(a.getLabelConfig())}),i={x:a[0].category,y:a[0].y},i.points=j,this.len=j.length,a=a[0]),k=k.call(i,this),i=a.series,this.distance=p(i.tooltipOptions.distance,16),k===!1?this.hide():(this.isHidden&&(Oa(d),d.attr("opacity",1).show()),d.attr({text:k}),m=e.borderColor||a.color||i.color||"#606060",d.attr({stroke:m}),this.updatePosition({plotX:f,plotY:g,negative:a.negative,ttBelow:a.ttBelow,h:h[2]||0}),this.isHidden=!1),H(c,"tooltipRefresh",{text:k,x:f+c.plotLeft,y:g+c.plotTop,borderColor:m})},updatePosition:function(a){var b=this.chart,c=this.label,c=(this.options.positioner||this.getPosition).call(this,c.width,c.height,a);this.move(B(c.x),B(c.y||0),a.plotX+b.plotLeft,a.plotY+b.plotTop)},getXDateFormat:function(a,b,c){var d,f,h,b=b.dateTimeLabelFormats,e=c&&c.closestPointRange,g={millisecond:15,second:12,minute:9,hour:6,day:3},i="millisecond";if(e){h=Qa("%m-%d %H:%M:%S.%L",a.x);for(f in G){if(e===G.week&&+Qa("%w",a.x)===c.options.startOfWeek&&"00:00:00.000"===h.substr(6)){f="week";break}if(G[f]>e){f=i;break}if(g[f]&&h.substr(g[f])!=="01-01 00:00:00.000".substr(g[f]))break;"week"!==f&&(i=f)}f&&(d=b[f])}else d=b.day;return d||b.year},tooltipFooterHeaderFormatter:function(a,b){var c=b?"footer":"header",d=a.series,e=d.tooltipOptions,f=e.xDateFormat,g=d.xAxis,h=g&&"datetime"===g.options.type&&ma(a.key),c=e[c+"Format"];return h&&!f&&(f=this.getXDateFormat(a,e,g)),h&&f&&(c=c.replace("{point.key}","{point.key:"+f+"}")),La(c,{point:a,series:d})},bodyFormatter:function(a){return Ba(a,function(a){var c=a.series.tooltipOptions;return(c.pointFormatter||a.point.tooltipFormatter).call(a.point,c.pointFormat)})}},db=y&&y.documentElement.ontouchstart!==A,Xa=z.Pointer=function(a,b){this.init(a,b)},Xa.prototype={init:function(a,b){var f,c=b.chart,d=c.events,e=ga?"":c.zoomType,c=a.inverted;this.options=b,this.chart=a,this.zoomX=f=/x/.test(e),this.zoomY=e=/y/.test(e),this.zoomHor=f&&!c||e&&c,this.zoomVert=e&&!c||f&&c,this.hasZoom=f||e,this.runChartClick=d&&!!d.click,this.pinchDown=[],this.lastValidTouch={},z.Tooltip&&b.tooltip.enabled&&(a.tooltip=new Pb(a,b.tooltip),this.followTouchMove=p(b.tooltip.followTouchMove,!0)),this.setDOMEvents()},normalize:function(a,b){var c,d,a=a||E.event;return a.target||(a.target=a.srcElement),d=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a,b||(this.chartPosition=b=Ab(this.chart.container)),d.pageX===A?(c=t(a.x,a.clientX-b.left),d=a.y):(c=d.pageX-b.left,d=d.pageY-b.top),u(a,{chartX:B(c),chartY:B(d)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};return o(this.chart.axes,function(c){b[c.isXAxis?"xAxis":"yAxis"].push({axis:c,value:c.toValue(a[c.horiz?"chartX":"chartY"])})}),b},runPointActions:function(a){var i,k,l,b=this.chart,c=b.series,d=b.tooltip,e=d?d.shared:!1,f=b.hoverPoint,g=b.hoverSeries,h=[Number.MAX_VALUE,Number.MAX_VALUE],j=[],m=[];if(!e&&!g)for(b=0;bd?d=h:d>h+k&&(d=h+k),i>e?e=i:e>i+j&&(e=i+j),this.hasDragged=Math.sqrt(Math.pow(n-d,2)+Math.pow(r-e,2)),this.hasDragged>10&&(m=b.isInsidePlot(n-h,r-i),b.hasCartesianSeries&&(this.zoomX||this.zoomY)&&m&&!s&&!l&&(this.selectionMarker=l=b.renderer.rect(h,i,f?1:k,g?1:j,0).attr({fill:c.selectionMarkerFill||"rgba(69,114,167,0.25)",zIndex:7}).add()),l&&f&&(d-=n,l.attr({width:P(d),x:(d>0?0:d)+n})),l&&g&&(d=e-r,l.attr({height:P(d),y:(d>0?0:d)+r})),m&&!l&&c.panning&&b.pan(a,c.panning)))},drop:function(a){var e,f,g,h,i,k,j,b=this,c=this.chart,d=this.hasPinched;this.selectionMarker&&(e={originalEvent:a,xAxis:[],yAxis:[]},f=this.selectionMarker,g=f.attr?f.attr("x"):f.x,h=f.attr?f.attr("y"):f.y,i=f.attr?f.attr("width"):f.width,k=f.attr?f.attr("height"):f.height,(this.hasDragged||d)&&(o(c.axes,function(c){if(c.zoomEnabled&&q(c.min)&&(d||b[{xAxis:"zoomX",yAxis:"zoomY"}[c.coll]])){var f=c.horiz,n="touchend"===a.type?c.minPixelPadding:0,r=c.toValue((f?g:h)+n),f=c.toValue((f?g+i:h+k)-n);e[c.coll].push({axis:c,min:F(r,f),max:t(r,f)}),j=!0}}),j&&H(c,"selection",e,function(a){c.zoom(u(a,d?{animation:!1}:null))})),this.selectionMarker=this.selectionMarker.destroy(),d&&this.scaleGroups()),c&&(L(c.container,{cursor:c._cursor}),c.cancelClick=this.hasDragged>10,c.mouseIsDown=this.hasDragged=this.hasPinched=!1,this.pinchDown=[])},onContainerMouseDown:function(a){a=this.normalize(a),a.preventDefault&&a.preventDefault(),this.dragStart(a)},onDocumentMouseUp:function(a){T[ha]&&T[ha].pointer.drop(a)},onDocumentMouseMove:function(a){var b=this.chart,c=this.chartPosition,a=this.normalize(a,c);c&&!this.inClass(a.target,"highcharts-tracker")&&!b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop)&&this.reset()},onContainerMouseLeave:function(a){var b=T[ha];b&&(a.relatedTarget||a.toElement)&&(b.pointer.reset(),b.pointer.chartPosition=null)},onContainerMouseMove:function(a){var b=this.chart;q(ha)&&T[ha].mouseIsDown||(ha=b.index),a=this.normalize(a),a.returnValue=!1,"mousedown"===b.mouseIsDown&&this.drag(a),(this.inClass(a.target,"highcharts-tracker")||b.isInsidePlot(a.chartX-b.plotLeft,a.chartY-b.plotTop))&&!b.openMenu&&this.runPointActions(a)},inClass:function(a,b){for(var c;a;){if(c=K(a,"class")){if(-1!==c.indexOf(b))return!0;if(-1!==c.indexOf("highcharts-container"))return!1}a=a.parentNode}},onTrackerMouseOut:function(a){var b=this.chart.hoverSeries,a=a.relatedTarget||a.toElement;!b||!a||b.options.stickyTracking||this.inClass(a,"highcharts-tooltip")||this.inClass(a,"highcharts-series-"+b.index)||b.onMouseOut()},onContainerClick:function(a){var b=this.chart,c=b.hoverPoint,d=b.plotLeft,e=b.plotTop,a=this.normalize(a);b.cancelClick||(c&&this.inClass(a.target,"highcharts-tracker")?(H(c.series,"click",u(a,{point:c})),b.hoverPoint&&c.firePointEvent("click",a)):(u(a,this.getCoordinates(a)),b.isInsidePlot(a.chartX-d,a.chartY-e)&&H(b,"click",a)))},setDOMEvents:function(){var a=this,b=a.chart.container;b.onmousedown=function(b){a.onContainerMouseDown(b)},b.onmousemove=function(b){a.onContainerMouseMove(b)},b.onclick=function(b){a.onContainerClick(b)},M(b,"mouseleave",a.onContainerMouseLeave),1===eb&&M(y,"mouseup",a.onDocumentMouseUp),db&&(b.ontouchstart=function(b){a.onContainerTouchStart(b)},b.ontouchmove=function(b){a.onContainerTouchMove(b)},1===eb&&M(y,"touchend",a.onDocumentTouchEnd))},destroy:function(){var a;V(this.chart.container,"mouseleave",this.onContainerMouseLeave),eb||(V(y,"mouseup",this.onDocumentMouseUp),V(y,"touchend",this.onDocumentTouchEnd)),clearInterval(this.tooltipTimeout);for(a in this)this[a]=null}},u(z.Pointer.prototype,{pinchTranslate:function(a,b,c,d,e,f){(this.zoomHor||this.pinchHor)&&this.pinchTranslateDirection(!0,a,b,c,d,e,f),(this.zoomVert||this.pinchVert)&&this.pinchTranslateDirection(!1,a,b,c,d,e,f)},pinchTranslateDirection:function(a,b,c,d,e,f,g,h){var r,s,B,i=this.chart,k=a?"x":"y",j=a?"X":"Y",m="chart"+j,l=a?"width":"height",n=i["plot"+(a?"Left":"Top")],p=h||1,o=i.inverted,x=i.bounds[a?"h":"v"],w=1===b.length,q=b[0][m],t=c[0][m],u=!w&&b[1][m],z=!w&&c[1][m],c=function(){!w&&P(q-u)>20&&(p=h||P(t-z)/P(q-u)),s=(n-t)/p+q,r=i["plot"+(a?"Width":"Height")]/p};c(),b=s,bx.max&&(b=x.max-r,B=!0),B?(t-=.8*(t-g[k][0]),w||(z-=.8*(z-g[k][1])),c()):g[k]=[t,z],o||(f[k]=s-n,f[l]=r),f=o?1/p:p,e[l]=r,e[k]=b,d[o?a?"scaleY":"scaleX":"scale"+j]=p,d["translate"+j]=f*n+(t-f*q)},pinch:function(a){var b=this,c=b.chart,d=b.pinchDown,e=a.touches,f=e.length,g=b.lastValidTouch,h=b.hasZoom,i=b.selectionMarker,k={},j=1===f&&(b.inClass(a.target,"highcharts-tracker")&&c.runTrackerClick||b.runChartClick),m={};f>1&&(b.initiated=!0),h&&b.initiated&&!j&&a.preventDefault(),Ba(e,function(a){return b.normalize(a)}),"touchstart"===a.type?(o(e,function(a,b){d[b]={chartX:a.chartX,chartY:a.chartY}}),g.x=[d[0].chartX,d[1]&&d[1].chartX],g.y=[d[0].chartY,d[1]&&d[1].chartY],o(c.axes,function(a){if(a.zoomEnabled){var b=c.bounds[a.horiz?"h":"v"],d=a.minPixelPadding,e=a.toPixels(p(a.options.min,a.dataMin)),f=a.toPixels(p(a.options.max,a.dataMax)),g=F(e,f),e=t(e,f);b.min=F(a.pos,g-d),b.max=t(a.pos+a.len,e+d)}}),b.res=!0):d.length&&(i||(b.selectionMarker=i=u({destroy:Aa,touch:!0},c.plotBox)),b.pinchTranslate(d,e,k,i,m,g),b.hasPinched=h,b.scaleGroups(k,m),!h&&b.followTouchMove&&1===f?this.runPointActions(b.normalize(a)):b.res&&(b.res=!1,this.reset(!1,0)))},touch:function(a,b){var c=this.chart;ha=c.index,1===a.touches.length?(a=this.normalize(a),c.isInsidePlot(a.chartX-c.plotLeft,a.chartY-c.plotTop)&&!c.openMenu?(b&&this.runPointActions(a),this.pinch(a)):b&&this.reset()):2===a.touches.length&&this.pinch(a)},onContainerTouchStart:function(a){this.touch(a,!0)},onContainerTouchMove:function(a){this.touch(a);
},onDocumentTouchEnd:function(a){T[ha]&&T[ha].pointer.drop(a)}}),(E.PointerEvent||E.MSPointerEvent)&&(va={},Db=!!E.PointerEvent,Sb=function(){var a,b=[];b.item=function(a){return this[a]};for(a in va)va.hasOwnProperty(a)&&b.push({pageX:va[a].pageX,pageY:va[a].pageY,target:va[a].target});return b},Eb=function(a,b,c,d){"touch"!==a.pointerType&&a.pointerType!==a.MSPOINTER_TYPE_TOUCH||!T[ha]||(d(a),d=T[ha].pointer,d[b]({type:c,target:a.currentTarget,preventDefault:Aa,touches:Sb()}))},u(Xa.prototype,{onContainerPointerDown:function(a){Eb(a,"onContainerTouchStart","touchstart",function(a){va[a.pointerId]={pageX:a.pageX,pageY:a.pageY,target:a.currentTarget}})},onContainerPointerMove:function(a){Eb(a,"onContainerTouchMove","touchmove",function(a){va[a.pointerId]={pageX:a.pageX,pageY:a.pageY},va[a.pointerId].target||(va[a.pointerId].target=a.currentTarget)})},onDocumentPointerUp:function(a){Eb(a,"onDocumentTouchEnd","touchend",function(a){delete va[a.pointerId]})},batchMSEvents:function(a){a(this.chart.container,Db?"pointerdown":"MSPointerDown",this.onContainerPointerDown),a(this.chart.container,Db?"pointermove":"MSPointerMove",this.onContainerPointerMove),a(y,Db?"pointerup":"MSPointerUp",this.onDocumentPointerUp)}}),fb(Xa.prototype,"init",function(a,b,c){a.call(this,b,c),this.hasZoom&&L(b.container,{"-ms-touch-action":"none","touch-action":"none"})}),fb(Xa.prototype,"setDOMEvents",function(a){a.apply(this),(this.hasZoom||this.followTouchMove)&&this.batchMSEvents(M)}),fb(Xa.prototype,"destroy",function(a){this.batchMSEvents(V),a.call(this)})),ob=z.Legend=function(a,b){this.init(a,b)},ob.prototype={init:function(a,b){var c=this,d=b.itemStyle,e=b.itemMarginTop||0;this.options=b,b.enabled&&(c.itemStyle=d,c.itemHiddenStyle=D(d,b.itemHiddenStyle),c.itemMarginTop=e,c.padding=d=p(b.padding,8),c.initialItemX=d,c.initialItemY=d-5,c.maxItemWidth=0,c.chart=a,c.itemHeight=0,c.symbolWidth=p(b.symbolWidth,16),c.pages=[],c.render(),M(c.chart,"endResize",function(){c.positionCheckboxes()}))},colorizeItem:function(a,b){var k,c=this.options,d=a.legendItem,e=a.legendLine,f=a.legendSymbol,g=this.itemHiddenStyle.color,c=b?c.itemStyle.color:g,h=b?a.legendColor||a.color||"#CCC":g,g=a.options&&a.options.marker,i={fill:h};if(d&&d.css({fill:c,color:c}),e&&e.attr({stroke:h}),f){if(g&&f.isMarker)for(k in i.stroke=h,g=a.convertAttribs(g))d=g[k],d!==A&&(i[k]=d);f.attr(i)}},positionItem:function(a){var b=this.options,c=b.symbolPadding,b=!b.rtl,d=a._legendItemPos,e=d[0],d=d[1],f=a.checkbox;(a=a.legendGroup)&&a.element&&a.translate(b?e:this.legendWidth-e-2*c-4,d),f&&(f.x=e,f.y=d)},destroyItem:function(a){var b=a.checkbox;o(["legendItem","legendLine","legendSymbol","legendGroup"],function(b){a[b]&&(a[b]=a[b].destroy())}),b&&Ta(a.checkbox)},destroy:function(){var a=this.group,b=this.box;b&&(this.box=b.destroy()),a&&(this.group=a.destroy())},positionCheckboxes:function(a){var c,b=this.group.alignAttr,d=this.clipHeight||this.legendHeight,e=this.titleHeight;b&&(c=b.translateY,o(this.allItems,function(f){var h,g=f.checkbox;g&&(h=c+e+g.y+(a||0)+3,L(g,{left:b.translateX+f.checkboxOffset+g.x-20+"px",top:h+"px",display:h>c-6&&c+d-6>h?"":"none"}))}))},renderTitle:function(){var a=this.padding,b=this.options.title,c=0;b.text&&(this.title||(this.title=this.chart.renderer.label(b.text,a-3,a-4,null,null,null,null,null,"legend-title").attr({zIndex:1}).css(b.style).add(this.group)),a=this.title.getBBox(),c=a.height,this.offsetWidth=a.width,this.contentGroup.attr({translateY:c})),this.titleHeight=c},setText:function(a){var b=this.options;a.legendItem.attr({text:b.labelFormat?La(b.labelFormat,a):b.labelFormatter.call(a)})},renderItem:function(a){var b=this.chart,c=b.renderer,d=this.options,e="horizontal"===d.layout,f=this.symbolWidth,g=d.symbolPadding,h=this.itemStyle,i=this.itemHiddenStyle,k=this.padding,j=e?p(d.itemDistance,20):0,m=!d.rtl,l=d.width,n=d.itemMarginBottom||0,r=this.itemMarginTop,s=this.initialItemX,o=a.legendItem,v=a.series&&a.series.drawLegendSymbol?a.series:a,x=v.options,x=this.createCheckboxForItem&&x&&x.showCheckbox,w=d.useHTML;o||(a.legendGroup=c.g("legend-item").attr({zIndex:1}).add(this.scrollGroup),a.legendItem=o=c.text("",m?f+g:-g,this.baseline||0,w).css(D(a.visible?h:i)).attr({align:m?"left":"right",zIndex:2}).add(a.legendGroup),this.baseline||(this.fontMetrics=c.fontMetrics(h.fontSize,o),this.baseline=this.fontMetrics.f+3+r,o.attr("y",this.baseline)),v.drawLegendSymbol(this,a),this.setItemEvents&&this.setItemEvents(a,o,w,h,i),x&&this.createCheckboxForItem(a)),this.colorizeItem(a,a.visible),this.setText(a),c=o.getBBox(),f=a.checkboxOffset=d.itemWidth||a.legendItemWidth||f+g+c.width+j+(x?20:0),this.itemHeight=g=B(a.legendItemHeight||c.height),e&&this.itemX-s+f>(l||b.chartWidth-2*k-s-d.x)&&(this.itemX=s,this.itemY+=r+this.lastLineHeight+n,this.lastLineHeight=0),this.maxItemWidth=t(this.maxItemWidth,f),this.lastItemY=r+this.itemY+n,this.lastLineHeight=t(g,this.lastLineHeight),a._legendItemPos=[this.itemX,this.itemY],e?this.itemX+=f:(this.itemY+=r+g+n,this.lastLineHeight=g),this.offsetWidth=l||t((e?this.itemX-s-j:f)+k,this.offsetWidth)},getAllItems:function(){var a=[];return o(this.chart.series,function(b){var c=b.options;p(c.showInLegend,q(c.linkedTo)?!1:A,!0)&&(a=a.concat(b.legendItems||("point"===c.legendType?b.data:b)))}),a},adjustMargins:function(a,b){var c=this.chart,d=this.options,e=d.align.charAt(0)+d.verticalAlign.charAt(0)+d.layout.charAt(0);this.display&&!d.floating&&o([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(f,g){f.test(e)&&!q(a[g])&&(c[nb[g]]=t(c[nb[g]],c.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*d[g%2?"x":"y"]+p(d.margin,12)+b[g]))})},render:function(){var e,f,g,h,a=this,b=a.chart,c=b.renderer,d=a.group,i=a.box,k=a.options,j=a.padding,m=k.borderWidth,l=k.backgroundColor;a.itemX=a.initialItemX,a.itemY=a.initialItemY,a.offsetWidth=0,a.lastItemY=0,d||(a.group=d=c.g("legend").attr({zIndex:7}).add(),a.contentGroup=c.g().attr({zIndex:1}).add(d),a.scrollGroup=c.g().add(a.contentGroup)),a.renderTitle(),e=a.getAllItems(),ib(e,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)}),k.reversed&&e.reverse(),a.allItems=e,a.display=f=!!e.length,a.lastLineHeight=0,o(e,function(b){a.renderItem(b)}),g=(k.width||a.offsetWidth)+j,h=a.lastItemY+a.lastLineHeight+a.titleHeight,h=a.handleOverflow(h),h+=j,(m||l)&&(i?g>0&&h>0&&(i[i.isNew?"attr":"animate"](i.crisp({width:g,height:h})),i.isNew=!1):(a.box=i=c.rect(0,0,g,h,k.borderRadius,m||0).attr({stroke:k.borderColor,"stroke-width":m||0,fill:l||"none"}).add(d).shadow(k.shadow),i.isNew=!0),i[f?"show":"hide"]()),a.legendWidth=g,a.legendHeight=h,o(e,function(b){a.positionItem(b)}),f&&d.align(u({width:g,height:h},k),!0,"spacingBox"),b.isResizing||this.positionCheckboxes()},handleOverflow:function(a){var h,s,b=this,c=this.chart,d=c.renderer,e=this.options,f=e.y,f=c.spacingBox.height+("top"===e.verticalAlign?-f:f)-this.padding,g=e.maxHeight,i=this.clipRect,k=e.navigation,j=p(k.animation,!0),m=k.arrowSize||12,l=this.nav,n=this.pages,r=this.padding,R=this.allItems,v=function(a){i.attr({height:a}),b.contentGroup.div&&(b.contentGroup.div.style.clip="rect("+r+"px,9999px,"+(r+a)+"px,0)")};return"horizontal"===e.layout&&(f/=2),g&&(f=F(f,g)),n.length=0,a>f?(this.clipHeight=h=t(f-20-this.titleHeight-r,0),this.currentPage=p(this.currentPage,1),this.fullHeight=a,o(R,function(a,b){var c=a._legendItemPos[1],d=B(a.legendItem.getBBox().height),e=n.length;(!e||c-n[e-1]>h&&(s||c)!==n[e-1])&&(n.push(s||c),e++),b===R.length-1&&c+d-n[e-1]>h&&n.push(c),c!==s&&(s=c)}),i||(i=b.clipRect=d.clipRect(0,r,9999,0),b.contentGroup.clip(i)),v(h),l||(this.nav=l=d.g().attr({zIndex:1}).add(this.group),this.up=d.symbol("triangle",0,0,m,m).on("click",function(){b.scroll(-1,j)}).add(l),this.pager=d.text("",15,10).css(k.style).add(l),this.down=d.symbol("triangle-down",0,0,m,m).on("click",function(){b.scroll(1,j)}).add(l)),b.scroll(0),a=f):l&&(v(c.chartHeight),l.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0),a},scroll:function(a,b){var c=this.pages,d=c.length,e=this.currentPage+a,f=this.clipHeight,g=this.options.navigation,h=g.activeColor,g=g.inactiveColor,i=this.pager,k=this.padding;e>d&&(e=d),e>0&&(b!==A&&Ua(b,this.chart),this.nav.attr({translateX:k,translateY:f+this.padding+7+this.titleHeight,visibility:"visible"}),this.up.attr({fill:1===e?g:h}).css({cursor:1===e?"default":"pointer"}),i.attr({text:e+"/"+d}),this.down.attr({x:18+this.pager.getBBox().width,fill:e===d?g:h}).css({cursor:e===d?"default":"pointer"}),c=-c[e-1]+this.initialItemY,this.scrollGroup.animate({translateY:c}),this.currentPage=e,this.positionCheckboxes(c))}},J=z.LegendSymbolMixin={drawRectangle:function(a,b){var c=a.options.symbolHeight||a.fontMetrics.f;b.legendSymbol=this.chart.renderer.rect(0,a.baseline-c+1,a.symbolWidth,c,a.options.symbolRadius||0).attr({zIndex:3}).add(b.legendGroup)},drawLineMarker:function(a){var g,b=this.options,c=b.marker,d=a.symbolWidth,e=this.chart.renderer,f=this.legendGroup,a=a.baseline-B(.3*a.fontMetrics.b);b.lineWidth&&(g={"stroke-width":b.lineWidth},b.dashStyle&&(g.dashstyle=b.dashStyle),this.legendLine=e.path(["M",0,a,"L",d,a]).attr(g).add(f)),c&&c.enabled!==!1&&(b=c.radius,this.legendSymbol=c=e.symbol(this.symbol,d/2-b,a-b,2*b,2*b,c).add(f),c.isMarker=!0)}},(/Trident\/7\.0/.test(za)||Na)&&fb(ob.prototype,"positionItem",function(a,b){var c=this,d=function(){b._legendItemPos&&a.call(c,b)};d(),setTimeout(d)}),hb=z.Chart=function(){this.getArgs.apply(this,arguments)},z.chart=function(a,b,c){return new hb(a,b,c)},hb.prototype={callbacks:[],getArgs:function(){var a=[].slice.call(arguments);(xa(a[0])||a[0].nodeName)&&(this.renderTo=a.shift()),this.init(a[0],a[1])},init:function(a,b){var c,e,f,g,d=a.series;if(a.series=null,c=D(N,a),c.series=a.series=d,this.userOptions=a,d=c.chart,this.margin=this.splashArray("margin",d),this.spacing=this.splashArray("spacing",d),e=d.events,this.bounds={h:{},v:{}},this.callback=b,this.isResizing=0,this.options=c,this.axes=[],this.series=[],this.hasCartesianSeries=d.showAxes,f=this,f.index=T.length,T.push(f),eb++,d.reflow!==!1&&M(f,"load",function(){f.initReflow()}),e)for(g in e)M(f,g,e[g]);f.xAxis=[],f.yAxis=[],f.animation=ga?!1:p(d.animation,!0),f.pointCount=f.colorCounter=f.symbolCounter=0,f.firstRender()},initSeries:function(a){var b=this.options.chart;return(b=I[a.type||b.type||b.defaultSeriesType])||X(17,!0),b=new b,b.init(this,a),b},isInsidePlot:function(a,b,c){var d=c?b:a,a=c?a:b;return d>=0&&d<=this.plotWidth&&a>=0&&a<=this.plotHeight},redraw:function(a){var g,h,b=this.axes,c=this.series,d=this.pointer,e=this.legend,f=this.isDirtyLegend,i=this.hasCartesianSeries,k=this.isDirtyBox,j=c.length,m=j,l=this.renderer,n=l.isHidden(),r=[];for(Ua(a,this),n&&this.cloneRenderTo(),this.layOutTitles();m--;)if(a=c[m],a.options.stacking&&(g=!0,a.isDirty)){h=!0;break}if(h)for(m=j;m--;)a=c[m],a.options.stacking&&(a.isDirty=!0);o(c,function(a){a.isDirty&&"point"===a.options.legendType&&(a.updateTotals&&a.updateTotals(),f=!0)}),f&&e.options.enabled&&(e.render(),this.isDirtyLegend=!1),g&&this.getStacks(),i&&!this.isResizing&&(this.maxTicks=null,o(b,function(a){a.setScale()})),this.getMargins(),i&&(o(b,function(a){a.isDirty&&(k=!0)}),o(b,function(a){var b=a.min+","+a.max;a.extKey!==b&&(a.extKey=b,r.push(function(){H(a,"afterSetExtremes",u(a.eventArgs,a.getExtremes())),delete a.eventArgs})),(k||g)&&a.redraw()})),k&&this.drawChartBox(),o(c,function(a){a.isDirty&&a.visible&&(!a.isCartesian||a.xAxis)&&a.redraw()}),d&&d.reset(!0),l.draw(),H(this,"redraw"),n&&this.cloneRenderTo(!0),o(r,function(a){a.call()})},get:function(a){var d,e,b=this.axes,c=this.series;for(d=0;d19?this.containerHeight:400))},cloneRenderTo:function(a){var b=this.renderToClone,c=this.container;a?b&&(this.renderTo.appendChild(c),Ta(b),delete this.renderToClone):(c&&c.parentNode===this.renderTo&&this.renderTo.removeChild(c),this.renderToClone=b=this.renderTo.cloneNode(0),L(b,{position:"absolute",top:"-9999px",display:"block"}),b.style.setProperty&&b.style.setProperty("display","block","important"),y.body.appendChild(b),c&&b.appendChild(c))},getContainer:function(){var d,e,b=this.options,c=b.chart,a=this.renderTo,f="highcharts-"+zb++;a||(this.renderTo=a=c.renderTo),xa(a)&&(this.renderTo=a=y.getElementById(a)),a||X(13,!0),d=C(K(a,"data-highcharts-chart")),!isNaN(d)&&T[d]&&T[d].hasRendered&&T[d].destroy(),K(a,"data-highcharts-chart",this.index),a.innerHTML="",!c.skipClone&&!a.offsetWidth&&this.cloneRenderTo(),this.getChartSize(),d=this.chartWidth,e=this.chartHeight,this.container=a=Z(Ma,{className:"highcharts-container"+(c.className?" "+c.className:""),id:f},u({position:"relative",overflow:"hidden",width:d+"px",height:e+"px",textAlign:"left",lineHeight:"normal",zIndex:0,"-webkit-tap-highlight-color":"rgba(0,0,0,0)"},c.style),this.renderToClone||a),this._cursor=a.style.cursor,this.renderer=new(z[c.renderer]||cb)(a,d,e,c.style,c.forExport,b.exporting&&b.exporting.allowHTML),ga&&this.renderer.create(this,a,d,e),this.renderer.chartIndex=this.index},getMargins:function(a){var b=this.spacing,c=this.margin,d=this.titleOffset;this.resetMargins(),d&&!q(c[0])&&(this.plotTop=t(this.plotTop,d+this.options.title.margin+b[0])),this.legend.adjustMargins(c,b),this.extraBottomMargin&&(this.marginBottom+=this.extraBottomMargin),this.extraTopMargin&&(this.plotTop+=this.extraTopMargin),a||this.getAxisMargins()},getAxisMargins:function(){var a=this,b=a.axisOffset=[0,0,0,0],c=a.margin;a.hasCartesianSeries&&o(a.axes,function(a){a.visible&&a.getOffset()}),o(nb,function(d,e){q(c[e])||(a[d]+=b[e])}),a.setChartSize()},reflow:function(a){var b=this,c=b.options.chart,d=b.renderTo,e=c.width||ja(d,"width"),f=c.height||ja(d,"height"),c=a?a.target:E;b.hasUserSize||b.isPrinting||!e||!f||c!==E&&c!==y||(e===b.containerWidth&&f===b.containerHeight||(clearTimeout(b.reflowTimeout),b.reflowTimeout=Pa(function(){b.container&&(b.setSize(e,f,!1),b.hasUserSize=null)},a?100:0)),b.containerWidth=e,b.containerHeight=f)},initReflow:function(){var a=this,b=function(b){a.reflow(b)};M(E,"resize",b),M(a,"destroy",function(){V(E,"resize",b)})},setSize:function(a,b,c){var e,f,d=this,g=d.renderer;d.isResizing+=1,Ua(c,d),d.oldChartHeight=d.chartHeight,d.oldChartWidth=d.chartWidth,q(a)&&(d.chartWidth=e=t(0,B(a)),d.hasUserSize=!!e),q(b)&&(d.chartHeight=f=t(0,B(b))),a=g.globalAnimation,(a?Wa:L)(d.container,{width:e+"px",height:f+"px"},a),d.setChartSize(!0),g.setSize(e,f,c),d.maxTicks=null,o(d.axes,function(a){a.isDirty=!0,a.setScale()}),o(d.series,function(a){a.isDirty=!0}),d.isDirtyLegend=!0,d.isDirtyBox=!0,d.layOutTitles(),d.getMargins(),d.redraw(c),d.oldChartHeight=null,H(d,"resize"),a=g.globalAnimation,Pa(function(){d&&H(d,"endResize",null,function(){d.isResizing-=1})},a===!1?0:a&&a.duration||500)},setChartSize:function(a){var i,k,j,m,b=this.inverted,c=this.renderer,d=this.chartWidth,e=this.chartHeight,f=this.options.chart,g=this.spacing,h=this.clipOffset;this.plotLeft=i=B(this.plotLeft),this.plotTop=k=B(this.plotTop),this.plotWidth=j=t(0,B(d-i-this.marginRight)),this.plotHeight=m=t(0,B(e-k-this.marginBottom)),this.plotSizeX=b?m:j,this.plotSizeY=b?j:m,this.plotBorderWidth=f.plotBorderWidth||0,this.spacingBox=c.spacingBox={x:g[3],y:g[0],width:d-g[3]-g[1],height:e-g[0]-g[2]},this.plotBox=c.plotBox={x:i,y:k,width:j,height:m},d=2*S(this.plotBorderWidth/2),b=ua(t(d,h[3])/2),c=ua(t(d,h[0])/2),this.clipBox={x:b,y:c,width:S(this.plotSizeX-t(d,h[1])/2-b),height:t(0,S(this.plotSizeY-t(d,h[2])/2-c))},a||o(this.axes,function(a){a.setAxisSize(),a.setAxisTranslation()})},resetMargins:function(){var a=this;o(nb,function(b,c){a[b]=p(a.margin[c],a.spacing[c])}),a.axisOffset=[0,0,0,0],a.clipOffset=[0,0,0,0]},drawChartBox:function(){var n,a=this.options.chart,b=this.renderer,c=this.chartWidth,d=this.chartHeight,e=this.chartBackground,f=this.plotBackground,g=this.plotBorder,h=this.plotBGImage,i=a.borderWidth||0,k=a.backgroundColor,j=a.plotBackgroundColor,m=a.plotBackgroundImage,l=a.plotBorderWidth||0,r=this.plotLeft,p=this.plotTop,o=this.plotWidth,v=this.plotHeight,x=this.plotBox,w=this.clipRect,t=this.clipBox;n=i+(a.shadow?8:0),(i||k)&&(e?e.animate(e.crisp({width:c-n,height:d-n})):(e={fill:k||"none"},i&&(e.stroke=a.borderColor,e["stroke-width"]=i),this.chartBackground=b.rect(n/2,n/2,c-n,d-n,a.borderRadius,i).attr(e).addClass("highcharts-background").add().shadow(a.shadow))),j&&(f?f.animate(x):this.plotBackground=b.rect(r,p,o,v,0).attr({fill:j}).add().shadow(a.plotShadow)),m&&(h?h.animate(x):this.plotBGImage=b.image(m,r,p,o,v).add()),w?w.animate({width:t.width,height:t.height}):this.clipRect=b.clipRect(t),l&&(g?g.animate(g.crisp({x:r,y:p,width:o,height:v,strokeWidth:-l})):this.plotBorder=b.rect(r,p,o,v,0,-l).attr({stroke:a.plotBorderColor,"stroke-width":l,fill:"none",zIndex:1}).add()),this.isDirtyBox=!1},propFromSeries:function(){var c,e,f,a=this,b=a.options.chart,d=a.options.series;o(["inverted","angular","polar"],function(g){for(c=I[b.type||b.defaultSeriesType],f=a[g]||b[g]||c&&c.prototype[g],e=d&&d.length;!f&&e--;)(c=I[d[e].type])&&c.prototype[g]&&(f=!0);a[g]=f})},linkSeries:function(){var a=this,b=a.series;o(b,function(a){a.linkedSeries.length=0}),o(b,function(b){var d=b.options.linkedTo;xa(d)&&(d=":previous"===d?a.series[b.index-1]:a.get(d))&&(d.linkedSeries.push(b),b.linkedParent=d,b.visible=p(b.options.visible,d.options.visible,b.visible))})},renderSeries:function(){o(this.series,function(a){a.translate(),a.render()})},renderLabels:function(){var a=this,b=a.options.labels;b.items&&o(b.items,function(c){var d=u(b.style,c.style),e=C(d.left)+a.plotLeft,f=C(d.top)+a.plotTop+12;delete d.left,delete d.top,a.renderer.text(c.html,e,f).attr({zIndex:2}).css(d).add()})},render:function(){var d,e,f,g,a=this.axes,b=this.renderer,c=this.options;this.setTitle(),this.legend=new ob(this,c.legend),this.getStacks&&this.getStacks(),this.getMargins(!0),this.setChartSize(),d=this.plotWidth,e=this.plotHeight-=21,o(a,function(a){a.setScale()}),this.getAxisMargins(),f=d/this.plotWidth>1.1,g=e/this.plotHeight>1.05,(f||g)&&(this.maxTicks=null,o(a,function(a){(a.horiz&&f||!a.horiz&&g)&&a.setTickInterval(!0)}),this.getMargins()),this.drawChartBox(),this.hasCartesianSeries&&o(a,function(a){a.visible&&a.render()}),this.seriesGroup||(this.seriesGroup=b.g("series-group").attr({zIndex:3}).add()),this.renderSeries(),this.renderLabels(),this.showCredits(c.credits),this.hasRendered=!0},showCredits:function(a){a.enabled&&!this.credits&&(this.credits=this.renderer.text(a.text,0,0).on("click",function(){a.href&&(E.location.href=a.href)}).attr({align:a.position.align,zIndex:8}).css(a.style).add().align(a.position))},destroy:function(){var e,a=this,b=a.axes,c=a.series,d=a.container,f=d&&d.parentNode;for(H(a,"destroy"),T[a.index]=A,eb--,a.renderTo.removeAttribute("data-highcharts-chart"),V(a),e=b.length;e--;)b[e]=b[e].destroy();for(e=c.length;e--;)c[e]=c[e].destroy();o("title,subtitle,chartBackground,plotBackground,plotBGImage,plotBorder,seriesGroup,clipRect,credits,pointer,scroller,rangeSelector,legend,resetZoomButton,tooltip,renderer".split(","),function(b){var c=a[b];c&&c.destroy&&(a[b]=c.destroy())}),d&&(d.innerHTML="",V(d),f&&Ta(d));for(e in a)delete a[e]},isReadyToRender:function(){var a=this;return!ca&&E==E.top&&"complete"!==y.readyState||ga&&!E.canvg?(ga?Ob.push(function(){a.firstRender()},a.options.global.canvasToolsURL):y.attachEvent("onreadystatechange",function(){y.detachEvent("onreadystatechange",a.firstRender),"complete"===y.readyState&&a.firstRender()}),!1):!0},firstRender:function(){var a=this,b=a.options;a.isReadyToRender()&&(a.getContainer(),H(a,"init"),a.resetMargins(),a.setChartSize(),a.propFromSeries(),a.getAxes(),o(b.series||[],function(b){a.initSeries(b)}),a.linkSeries(),H(a,"beforeRender"),z.Pointer&&(a.pointer=new Xa(a,b)),a.render(),a.renderer.draw(),a.renderer.imgCount||a.onload(),a.cloneRenderTo(!0))},onload:function(){var a=this;o([this.callback].concat(this.callbacks),function(b){b&&void 0!==a.index&&b.apply(a,[a])}),a.renderer.imgCount||H(a,"load")},splashArray:function(a,b){var c=b[a],c=Y(c)?c:[c,c,c,c];return[p(b[a+"Top"],c[0]),p(b[a+"Right"],c[1]),p(b[a+"Bottom"],c[2]),p(b[a+"Left"],c[3])]}},Cb=z.CenteredSeriesMixin={getCenter:function(){var g,h,a=this.options,b=this.chart,c=2*(a.slicedOffset||0),d=b.plotWidth-2*c,b=b.plotHeight-2*c,e=a.center,e=[p(e[0],"50%"),p(e[1],"50%"),a.size||"100%",a.innerSize||0],f=F(d,b);for(g=0;4>g;++g)h=e[g],a=2>g||2===g&&/%$/.test(h),e[g]=(/%$/.test(h)?[d,b,f,e[2]][g]*parseFloat(h)/100:parseFloat(h))+(a?c:0);return e[3]>e[2]&&(e[3]=e[2]),e}},Ia=function(){},Ia.prototype={init:function(a,b,c){return this.series=a,this.color=a.color,this.applyOptions(b,c),this.pointAttr={},a.options.colorByPoint&&(b=a.options.colors||a.chart.options.colors,this.color=this.color||b[a.colorCounter++],a.colorCounter===b.length)&&(a.colorCounter=0),a.chart.pointCount++,this},applyOptions:function(a,b){var c=this.series,d=c.options.pointValKey||c.pointValKey,a=Ia.prototype.optionsToObject.call(this,a);return u(this,a),this.options=this.options?u(this.options,a):a,d&&(this.y=this[d]),this.isNull=null===this.y,this.x===A&&c&&(this.x=b===A?c.autoIncrement():b),this},optionsToObject:function(a){var b={},c=this.series,d=c.options.keys,e=d||c.pointArrayMap||["y"],f=e.length,g=0,h=0;if("number"==typeof a||null===a)b[e[0]]=a;else if(Ja(a))for(!d&&a.length>f&&(c=typeof a[0],"string"===c?b.name=a[0]:"number"===c&&(b.x=a[0]),g++);f>h;)d&&void 0===a[g]||(b[e[h]]=a[g]),g++,h++;else"object"==typeof a&&(b=a,a.dataLabels&&(c._hasPointLabels=!0),a.marker&&(c._hasPointMarkers=!0));return b},destroy:function(){var c,a=this.series.chart,b=a.hoverPoints;a.pointCount--,b&&(this.setState(),oa(b,this),!b.length)&&(a.hoverPoints=null),this===a.hoverPoint&&this.onMouseOut(),(this.graphic||this.dataLabel)&&(V(this),this.destroyElements()),this.legendItem&&a.legend.destroyItem(this);for(c in this)this[c]=null},destroyElements:function(){for(var b,a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],c=6;c--;)b=a[c],this[b]&&(this[b]=this[b].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var b=this.series,c=b.tooltipOptions,d=p(c.valueDecimals,""),e=c.valuePrefix||"",f=c.valueSuffix||"";return o(b.pointArrayMap||["y"],function(b){b="{point."+b,(e||f)&&(a=a.replace(b+"}",e+b+"}"+f)),a=a.replace(b+"}",b+":,."+d+"f}")}),La(a,{point:this,series:this.series})},firePointEvent:function(a,b,c){var d=this,e=this.series.options;(e.point.events[a]||d.options&&d.options.events&&d.options.events[a])&&this.importEvents(),"click"===a&&e.allowPointSelect&&(c=function(a){d.select&&d.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}),H(this,a,b,c)},visible:!0},Q=z.Series=function(){},Q.prototype={isCartesian:!0,type:"line",pointClass:Ia,sorted:!0,requireSorting:!0,pointAttrToOptions:{stroke:"lineColor","stroke-width":"lineWidth",fill:"fillColor",r:"radius"},directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],init:function(a,b){var d,e,c=this,f=a.series,g=function(a,b){return p(a.options.index,a._i)-p(b.options.index,b._i)};c.chart=a,c.options=b=c.setOptions(b),c.linkedSeries=[],c.bindAxes(),u(c,{name:b.name,state:"",pointAttr:{},visible:b.visible!==!1,selected:b.selected===!0}),ga&&(b.animation=!1),e=b.events;for(d in e)M(c,d,e[d]);(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)&&(a.runTrackerClick=!0),c.getColor(),c.getSymbol(),o(c.parallelArrays,function(a){c[a+"Data"]=[]}),c.setData(b.data,!1),c.isCartesian&&(a.hasCartesianSeries=!0),f.push(c),c._i=f.length-1,ib(f,g),this.yAxis&&ib(this.yAxis.series,g),o(f,function(a,b){a.index=b,a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var d,a=this,b=a.options,c=a.chart;o(a.axisTypes||[],function(e){o(c[e],function(c){d=c.options,(b[e]===d.index||b[e]!==A&&b[e]===d.id||b[e]===A&&0===d.index)&&(c.series.push(a),a[e]=c,c.isDirty=!0)}),!a[e]&&a.optionalAxis!==e&&X(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,d=arguments;o(c.parallelArrays,"number"==typeof b?function(d){var f="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=f}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(d,2))})},autoIncrement:function(){var c,a=this.options,b=this.xIncrement,d=a.pointIntervalUnit,b=p(b,a.pointStart,0);return this.pointInterval=c=p(this.pointInterval,a.pointInterval,1),"month"!==d&&"year"!==d||(a=new qa(b),a="month"===d?+a[xb](a[ab]()+c):+a[yb](a[bb]()+c),c=a-b),this.xIncrement=b+c,b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];return this.userOptions=a,c=D(e,c.series,a),this.tooltipOptions=D(N.tooltip,N.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip),null===e.marker&&delete c.marker,this.zoneAxis=c.zoneAxis,a=this.zones=(c.zones||[]).slice(),!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,color:c.negativeColor,fillColor:c.negativeFillColor}),a.length&&q(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}),c},getCyclic:function(a,b,c){var d=this.userOptions,e="_"+a+"Index",f=a+"Counter";b||(q(d[e])?b=d[e]:(d[e]=b=this.chart[f]%c.length,this.chart[f]+=1),b=c[b]),this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||aa[this.type].color,this.chart.options.colors)},getSymbol:function(){var a=this.options.marker;this.getCyclic("symbol",a.symbol,this.chart.options.symbols),/^url/.test(this.symbol)&&(a.radius=0)},drawLegendSymbol:J.drawLineMarker,setData:function(a,b,c,d){var h,e=this,f=e.points,g=f&&f.length||0,i=e.options,k=e.chart,j=null,m=e.xAxis,l=m&&!!m.categories,n=i.turboThreshold,r=this.xData,s=this.yData,t=(h=e.pointArrayMap)&&h.length,a=a||[];if(h=a.length,b=p(b,!0),d!==!1&&h&&g===h&&!e.cropped&&!e.hasGroupedData&&e.visible)o(a,function(a,b){f[b].update&&a!==i.data[b]&&f[b].update(a,!1,null,!1)});else{if(e.xIncrement=null,e.colorCounter=0,o(this.parallelArrays,function(a){e[a+"Data"].length=0}),n&&h>n){for(c=0;null===j&&h>c;)j=a[c],c++;if(ma(j)){for(l=p(i.pointStart,0),j=p(i.pointInterval,1),c=0;h>c;c++)r[c]=l,s[c]=a[c],l+=j;e.xIncrement=l}else if(Ja(j))if(t)for(c=0;h>c;c++)j=a[c],r[c]=j[0],s[c]=j.slice(1,t+1);else for(c=0;h>c;c++)j=a[c],r[c]=j[0],s[c]=j[1];else X(12)}else for(c=0;h>c;c++)a[c]!==A&&(j={series:e},e.pointClass.prototype.applyOptions.apply(j,[a[c]]),e.updateParallelArrays(j,c),l&&q(j.name))&&(m.names[j.x]=j.name);for(xa(s[0])&&X(14,!0),e.data=[],e.options.data=e.userOptions.data=a,c=g;c--;)f[c]&&f[c].destroy&&f[c].destroy();m&&(m.minRange=m.userMinRange),e.isDirty=e.isDirtyData=k.isDirtyBox=!0,c=!1}"point"===i.legendType&&(this.processData(),this.generatePoints()),b&&k.redraw(c)},processData:function(a){var f,g,l,n,p,b=this.xData,c=this.yData,d=b.length,e=0,h=this.xAxis,k=this.options,i=k.cropThreshold,j=this.getExtremesFromAll||k.getExtremesFromAll,m=this.isCartesian;if(k=h&&h.val2lin,l=h&&h.isLog,m&&!this.isDirty&&!h.isDirty&&!this.yAxis.isDirty&&!a)return!1;for(h&&(a=h.getExtremes(),n=a.min,p=a.max),m&&this.sorted&&!j&&(!i||d>i||this.forceCrop)&&(b[d-1]p?(b=[],c=[]):(b[0]p)&&(e=this.cropData(this.xData,this.yData,n,p),b=e.xData,c=e.yData,e=e.start,f=!0)),i=b.length||1;--i;)d=l?k(b[i])-k(b[i-1]):b[i]-b[i-1],d>0&&(g===A||g>d)?g=d:0>d&&this.requireSorting&&X(15);this.cropped=f,this.cropStart=e,this.processedXData=b,this.processedYData=c,this.closestPointRange=g},cropData:function(a,b,c,d){var i,e=a.length,f=0,g=e,h=p(this.cropShoulder,1);for(i=0;e>i;i++)if(a[i]>=c){f=t(0,i-h);break}for(c=i;e>c;c++)if(a[c]>d){g=c+h;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var c,i,j,l,a=this.options.data,b=this.data,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,h=this.cropStart||0,k=this.hasGroupedData,m=[];for(b||k||(b=[],b.length=a.length,b=this.data=b),l=0;g>l;l++)i=h+l,k?m[l]=(new f).init(this,[d[l]].concat(ta(e[l]))):(b[i]?j=b[i]:a[i]!==A&&(b[i]=j=(new f).init(this,a[i],d[l])),m[l]=j),m[l].index=i;if(b&&(g!==(c=b.length)||k))for(l=0;c>l;l++)l===h&&!k&&(l+=g),b[l]&&(b[l].destroyElements(),b[l].plotX=A);this.data=b,this.points=m},getExtremes:function(a){var i,k,j,m,b=this.yAxis,c=this.processedXData,e=[],f=0,d=this.xAxis.getExtremes(),g=d.min,h=d.max;for(a=a||this.stackedYData||this.processedYData,d=a.length,m=0;d>m;m++)if(k=c[m],j=a[m],i=null!==j&&j!==A&&(!b.isLog||j.length||j>0),k=this.getExtremesFromAll||this.options.getExtremesFromAll||this.cropped||(c[m+1]||k)>=g&&(c[m-1]||k)<=h,i&&k)if(i=j.length)for(;i--;)null!==j[i]&&(e[f++]=j[i]);else e[f++]=j;this.dataMin=Ra(e),this.dataMax=Ea(e)},translate:function(){var a,b,c,d,e,f,g,h,i,k,j,m,l,n,r,o,R,v,x,w,u;for(this.processedXData||this.processData(),this.generatePoints(),a=this.options,b=a.stacking,c=this.xAxis,d=c.categories,e=this.yAxis,f=this.points,g=f.length,h=!!this.modifyValue,i=a.pointPlacement,k="between"===i||ma(i),j=a.threshold,m=a.startFromThreshold?j:0,R=Number.MAX_VALUE,a=0;g>a;a++)v=f[a],x=v.x,w=v.y,n=v.low,u=b&&e.stacks[(this.negStacks&&(m?0:j)>w?"-":"")+this.stackKey],e.isLog&&null!==w&&0>=w&&(v.y=w=null,X(10)),v.plotX=l=F(t(-1e5,c.translate(x,0,0,0,1,i,"flags"===this.type)),1e5),b&&this.visible&&!v.isNull&&u&&u[x]&&(o=this.getStackIndicator(o,x,this.index),u=u[x],w=u.points[o.key],n=w[0],w=w[1],n===m&&(n=p(j,e.min)),e.isLog&&0>=n&&(n=null),v.total=v.stackTotal=u.total,v.percentage=u.total&&v.y/u.total*100,v.stackY=w,u.setOffset(this.pointXOffset||0,this.barW||0)),v.yBottom=q(n)?e.translate(n,0,1,0,1):null,h&&(w=this.modifyValue(w,v)),v.plotY=n="number"==typeof w&&w!==1/0?F(t(-1e5,e.translate(w,0,1,0,1)),1e5):A,v.isInside=n!==A&&n>=0&&n<=e.len&&l>=0&&l<=c.len,v.clientX=k?c.translate(x,0,0,0,1):l,v.negative=v.y<(j||0),v.category=d&&d[v.x]!==A?d[v.x]:v.x,a&&(R=F(R,P(l-r))),r=l;this.closestPointRangePx=R;
},getValidPoints:function(){return Ha(this.points,function(a){return!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,h=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(","),i=b[h],k=b[h+"m"];i||(a&&(g.width=0,b[h+"m"]=k=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[h]=i=d.clipRect(g)),a&&(i.count+=1),c.clip!==!1&&(this.group.clip(a||f?i:b.clipRect),this.markerGroup.clip(k),this.sharedClipKey=h),a||(i.count-=1,i.count<=0&&h&&b[h]&&(f||(b[h]=b[h].destroy()),b[h+"m"]&&(b[h+"m"]=b[h+"m"].destroy())))},animate:function(a){var d,b=this.chart,c=this.options.animation;c&&!Y(c)&&(c=aa[this.type].animation),a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+99},c),this.animate=null)},afterAnimate:function(){this.setClip(),H(this,"afterAnimate")},drawPoints:function(){var a,d,e,f,g,h,i,k,j,n,r,o,b=this.points,c=this.chart,m=this.options.marker,l=this.pointAttr[""],t=this.markerGroup,v=p(m.enabled,this.xAxis.isRadial,this.closestPointRangePx>2*m.radius);if(m.enabled!==!1||this._hasPointMarkers)for(f=b.length;f--;)g=b[f],d=S(g.plotX),e=g.plotY,j=g.graphic,n=g.marker||{},r=!!g.marker,a=v&&n.enabled===A||n.enabled,o=g.isInside,a&&e!==A&&!isNaN(e)&&null!==g.y?(a=g.pointAttr[g.selected?"select":""]||l,h=a.r,i=p(n.symbol,this.symbol),k=0===i.indexOf("url"),j?j[o?"show":"hide"](!0).attr(a).animate(u({x:d-h,y:e-h},j.symbolName?{width:2*h,height:2*h}:{})):o&&(h>0||k)&&(g.graphic=c.renderer.symbol(i,d-h,e-h,2*h,2*h,r?n:m).attr(a).add(t))):j&&(g.graphic=j.destroy())},convertAttribs:function(a,b,c,d){var f,g,e=this.pointAttrToOptions,h={},a=a||{},b=b||{},c=c||{},d=d||{};for(f in e)g=e[f],h[f]=p(a[g],b[f],c[f],d[f]);return h},getAttribs:function(){var v,a=this,b=a.options,c=aa[a.type].marker?b.marker:b,d=c.states,e=d.hover,g=a.color,h=a.options.negativeColor,f={stroke:g,fill:g},i=a.points||[],m=[],l=a.pointAttrToOptions,k=a.hasPointSpecificOptions,n=c.lineColor,r=c.fillColor,j=b.turboThreshold,s=a.zones,t=a.zoneAxis||"y";if(b.marker?(e.radius=e.radius||c.radius+e.radiusPlus,e.lineWidth=e.lineWidth||c.lineWidth+e.lineWidthPlus):(e.color=e.color||ia(e.color||g).brighten(e.brightness).get(),e.negativeColor=e.negativeColor||ia(e.negativeColor||h).brighten(e.brightness).get()),m[""]=a.convertAttribs(c,f),o(["hover","select"],function(b){m[b]=a.convertAttribs(d[b],m[""])}),a.pointAttr=m,g=i.length,!j||j>g||k)for(;g--;){if(j=i[g],(c=j.options&&j.options.marker||j.options)&&c.enabled===!1&&(c.radius=0),s.length){for(k=0,f=s[k];j[t]>=f.value;)f=s[++k];j.color=j.fillColor=p(f.color,a.color)}if(k=b.colorByPoint||j.color,j.options)for(v in l)q(c[l[v]])&&(k=!0);k?(c=c||{},k=[],d=c.states||{},f=d.hover=d.hover||{},b.marker&&(!j.negative||f.fillColor||e.fillColor)||(f[a.pointAttrToOptions.fill]=f.color||!j.options.color&&e[j.negative&&h?"negativeColor":"color"]||ia(j.color).brighten(f.brightness||e.brightness).get()),f={color:j.color},r||(f.fillColor=j.color),n||(f.lineColor=j.color),c.hasOwnProperty("color")&&!c.color&&delete c.color,k[""]=a.convertAttribs(u(f,c),m[""]),k.hover=a.convertAttribs(d.hover,m.hover,k[""]),k.select=a.convertAttribs(d.select,m.select,k[""])):k=m,j.pointAttr=k}},destroy:function(){var d,f,g,h,a=this,b=a.chart,c=/AppleWebKit\/533/.test(za),e=a.data||[];for(H(a,"destroy"),V(a),o(a.axisTypes||[],function(b){(h=a[b])&&(oa(h.series,a),h.isDirty=h.forceRedraw=!0)}),a.legendItem&&a.chart.legend.destroyItem(a),d=e.length;d--;)(f=e[d])&&f.destroy&&f.destroy();a.points=null,clearTimeout(a.animationTimeout);for(g in a)a[g]instanceof O&&!a[g].survive&&(d=c&&"group"===g?"hide":"destroy",a[g][d]());b.hoverSeries===a&&(b.hoverSeries=null),oa(b.series,a);for(g in a)delete a[g]},getGraphPath:function(a,b,c){var h,d=this,e=d.options,f=e.step,g=[],a=a||d.points;return o(a,function(i,k){var j=i.plotX,m=i.plotY,l=a[k-1];(i.leftCliff||l&&l.rightCliff)&&!c&&(h=!0),i.isNull&&!q(b)&&k>0?h=!e.connectNulls:i.isNull&&!b?h=!0:(0===k||h?l=["M",i.plotX,i.plotY]:d.getPointSpline?l=d.getPointSpline(a,i,k):f?(l="right"===f?["L",l.plotX,m]:"center"===f?["L",(l.plotX+j)/2,l.plotY,"L",(l.plotX+j)/2,m]:["L",j,l.plotY],l.push("L",j,m)):l=["L",j,m],g.push.apply(g,l),h=!1)}),d.graphPath=g},drawGraph:function(){var a=this,b=this.options,c=[["graph",b.lineColor||this.color,b.dashStyle]],d=b.lineWidth,e="square"!==b.linecap,f=(this.gappedPath||this.getGraphPath).call(this),g=this.fillGraph&&this.color||"none";o(this.zones,function(d,e){c.push(["zoneGraph"+e,d.color||a.color,d.dashStyle||b.dashStyle])}),o(c,function(c,i){var k=c[0],j=a[k];j?j.animate({d:f}):(d||g)&&f.length&&(j={stroke:c[1],"stroke-width":d,fill:g,zIndex:1},c[2]?j.dashstyle=c[2]:e&&(j["stroke-linecap"]=j["stroke-linejoin"]="round"),a[k]=a.chart.renderer.path(f).attr(j).add(a.group).shadow(2>i&&b.shadow))})},applyZones:function(){var e,f,h,l,q,v,x,a=this,b=this.chart,c=b.renderer,d=this.zones,g=this.clips||[],i=this.graph,k=this.area,j=t(b.chartWidth,b.chartHeight),m=this[(this.zoneAxis||"y")+"Axis"],n=m.reversed,r=b.inverted,s=m.horiz,w=!1;d.length&&(i||k)&&m.min!==A&&(i&&i.hide(),k&&k.hide(),l=m.getExtremes(),o(d,function(d,o){e=n?s?b.plotWidth:0:s?0:m.toPixels(l.min),e=F(t(p(f,e),0),j),f=F(t(B(m.toPixels(p(d.value,l.max),!0)),0),j),w&&(e=f=m.toPixels(l.max)),q=Math.abs(e-f),v=F(e,f),x=t(e,f),m.isXAxis?(h={x:r?x:v,y:0,width:q,height:j},s||(h.x=b.plotHeight-h.x)):(h={x:0,y:r?x:v,width:j,height:q},s&&(h.y=b.plotWidth-h.y)),b.inverted&&c.isVML&&(h=m.isXAxis?{x:0,y:n?v:x,height:h.width,width:b.chartWidth}:{x:h.y-b.plotLeft-b.spacingBox.x,y:0,width:h.height,height:b.chartHeight}),g[o]?g[o].animate(h):(g[o]=c.clipRect(h),i&&a["zoneGraph"+o].clip(g[o]),k&&a["zoneArea"+o].clip(g[o])),w=d.value>l.max}),this.clips=g)},invertGroups:function(){function a(){var a={width:b.yAxis.len,height:b.xAxis.len};o(["group","markerGroup"],function(c){b[c]&&b[c].attr(a).invert()})}var b=this,c=b.chart;b.xAxis&&(M(c,"resize",a),M(b,"destroy",function(){V(c,"resize",a)}),a(),b.invertGroups=a)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;return g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index)),f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox()),f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;return a.inverted&&(b=c,c=this.xAxis),{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var c,a=this,b=a.chart,d=a.options,e=(c=d.animation)&&!!a.animate&&b.renderer.isSVG&&p(c.duration,500)||0,f=a.visible?"inherit":"hidden",g=d.zIndex,h=a.hasRendered,i=b.seriesGroup;c=a.plotGroup("group","series",f,g,i),a.markerGroup=a.plotGroup("markerGroup","markers",f,g,i),e&&a.animate(!0),a.getAttribs(),c.inverted=a.isCartesian?b.inverted:!1,a.drawGraph&&(a.drawGraph(),a.applyZones()),o(a.points,function(a){a.redraw&&a.redraw()}),a.drawDataLabels&&a.drawDataLabels(),a.visible&&a.drawPoints(),a.drawTracker&&a.options.enableMouseTracking!==!1&&a.drawTracker(),b.inverted&&a.invertGroups(),d.clip!==!1&&!a.sharedClipKey&&!h&&c.clip(b.clipRect),e&&a.animate(),h||(a.animationTimeout=Pa(function(){a.afterAnimate()},e)),a.isDirty=a.isDirtyData=!1,a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirtyData,c=this.isDirty,d=this.group,e=this.xAxis,f=this.yAxis;d&&(a.inverted&&d.attr({width:a.plotWidth,height:a.plotHeight}),d.animate({translateX:p(e&&e.left,a.plotLeft),translateY:p(f&&f.top,a.plotTop)})),this.translate(),this.render(),b&&H(this,"updatedData"),(c||b)&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)},buildKDTree:function(){function a(c,e,f){var g,h;return(h=c&&c.length)?(g=b.kdAxisArray[e%f],c.sort(function(a,b){return a[g]-b[g]}),h=Math.floor(h/2),{point:c[h],left:a(c.slice(0,h),e+1,f),right:a(c.slice(h+1),e+1,f)}):void 0}var b=this,c=b.kdDimensions;delete b.kdTree,Pa(function(){var d=Ha(b.points||[],function(a){return null!==a.y});b.kdTree=a(d,c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,k,j){var n,p,m=b.point,l=d.kdAxisArray[k%j],o=m;return p=q(a[e])&&q(m[e])?Math.pow(a[e]-m[e],2):null,n=q(a[f])&&q(m[f])?Math.pow(a[f]-m[f],2):null,n=(p||0)+(n||0),m.dist=q(n)?Math.sqrt(n):Number.MAX_VALUE,m.distX=q(p)?Math.sqrt(p):Number.MAX_VALUE,l=a[l]-m[l],n=0>l?"left":"right",p=0>l?"right":"left",b[n]&&(n=c(a,b[n],k+1,j),o=n[g]e;e++)a[e].setPercentStacks()}},ka.prototype.renderStackTotals=function(){var d,e,a=this.chart,b=a.renderer,c=this.stacks,f=this.stackTotalGroup;f||(this.stackTotalGroup=f=b.g("stack-labels").attr({visibility:"visible",zIndex:6}).add()),f.translate(a.plotLeft,a.plotTop);for(d in c)for(e in a=c[d])a[e].render(f)},ka.prototype.resetStacks=function(){var b,c,a=this.stacks;if(!this.isXAxis)for(b in a)for(c in a[b])a[b][c].touchedx;x++)w=a[x],u=b[x],o=this.getStackIndicator(o,w,this.index),v=o.key,q=(s=j&&(g?0:f)>u)?k:i,l[q]||(l[q]={}),l[q][w]||(n[q]&&n[q][w]?(l[q][w]=n[q][w],l[q][w].total=null):l[q][w]=new Kb(m,m.options.stackLabels,s,w,h)),q=l[q][w],null!==u&&(q.points[v]=q.points[this.index]=[p(q.cum,g)],q.touched=m.stacksTouched,o.index>0&&this.singleStacks===!1&&(q.points[v][0]=q.points[this.index+","+w+",0"][0])),"percent"===e?(s=s?i:k,j&&l[s]&&l[s][w]?(s=l[s][w],q.total=s.total=t(s.total,q.total)+P(u)||0):q.total=ea(q.total+(P(u)||0))):q.total=ea(q.total+(u||0)),q.cum=p(q.cum,g)+(u||0),null!==u&&q.points[v].push(q.cum),c[x]=q.cum;"percent"===e&&(m.usePercentage=!0),this.stackedYData=c,m.oldStacks={}}},Q.prototype.setPercentStacks=function(){var e,a=this,b=a.stackKey,c=a.yAxis.stacks,d=a.processedXData;o([b,"-"+b],function(b){var f,g,h,i;for(g=d.length;g--;)h=d[g],e=a.getStackIndicator(e,h,a.index),f=(i=c[b]&&c[b][h])&&i.points[e.key],(h=f)&&(i=i.total?100/i.total:0,h[0]=ea(h[0]*i),h[1]=ea(h[1]*i),a.stackedYData[g]=h[1])})},Q.prototype.getStackIndicator=function(a,b,c){return q(a)&&a.x===b?a.index++:a={x:b,index:0},a.key=[c,b,a.index].join(","),a},u(hb.prototype,{addSeries:function(a,b,c){var d,e=this;return a&&(b=p(b,!0),H(e,"addSeries",{options:a},function(){d=e.initSeries(a),e.isDirtyLegend=!0,e.linkSeries(),b&&e.redraw(c)})),d},addAxis:function(a,b,c,d){var e=b?"xAxis":"yAxis",f=this.options;new ka(this,D(a,{index:this[e].length,isX:b})),f[e]=ta(f[e]||{}),f[e].push(a),p(c,!0)&&this.redraw(d)},showLoading:function(a){var b=this,c=b.options,d=b.loadingDiv,e=c.loading,f=function(){d&&L(d,{left:b.plotLeft+"px",top:b.plotTop+"px",width:b.plotWidth+"px",height:b.plotHeight+"px"})};d||(b.loadingDiv=d=Z(Ma,{className:"highcharts-loading"},u(e.style,{zIndex:10,display:"none"}),b.container),b.loadingSpan=Z("span",null,e.labelStyle,d),M(b,"redraw",f)),b.loadingSpan.innerHTML=a||c.lang.loading,b.loadingShown||(L(d,{opacity:0,display:""}),Wa(d,{opacity:e.style.opacity},{duration:e.showDuration||0}),b.loadingShown=!0),f()},hideLoading:function(){var a=this.options,b=this.loadingDiv;b&&Wa(b,{opacity:0},{duration:a.loading.hideDuration||100,complete:function(){L(b,{display:"none"})}}),this.loadingShown=!1}}),u(Ia.prototype,{update:function(a,b,c,d){function e(){f.applyOptions(a),null===f.y&&h&&(f.graphic=h.destroy()),Y(a)&&!Ja(a)&&(f.redraw=function(){h&&h.element&&a&&a.marker&&a.marker.symbol&&(f.graphic=h.destroy()),a&&a.dataLabels&&f.dataLabel&&(f.dataLabel=f.dataLabel.destroy()),f.redraw=null}),i=f.index,g.updateParallelArrays(f,i),m&&f.name&&(m[f.x]=f.name),j.data[i]=Y(j.data[i])?f.options:a,g.isDirty=g.isDirtyData=!0,!g.fixedBox&&g.hasCartesianSeries&&(k.isDirtyBox=!0),"point"===j.legendType&&(k.isDirtyLegend=!0),b&&k.redraw(c)}var i,f=this,g=f.series,h=f.graphic,k=g.chart,j=g.options,m=g.xAxis&&g.xAxis.names,b=p(b,!0);d===!1?e():f.firePointEvent("update",{options:a},e)},remove:function(a,b){this.series.removePoint(sa(this,this.series.data),a,b)}}),u(Q.prototype,{addPoint:function(a,b,c,d){var n,e=this,f=e.options,g=e.data,h=e.graph,i=e.area,k=e.chart,j=e.xAxis&&e.xAxis.names,m=h&&h.shift||0,l=["graph","area"],h=f.data,r=e.xData;if(Ua(d,k),c){for(d=e.zones.length;d--;)l.push("zoneGraph"+d,"zoneArea"+d);o(l,function(a){e[a]&&(e[a].shift=m+(f.step?2:1))})}if(i&&(i.isArea=!0),b=p(b,!0),i={series:e},e.pointClass.prototype.applyOptions.apply(i,[a]),l=i.x,d=r.length,e.requireSorting&≪)d--;e.updateParallelArrays(i,"splice",d,0,0),e.updateParallelArrays(i,d),j&&i.name&&(j[l]=i.name),h.splice(d,0,a),n&&(e.data.splice(d,0,null),e.processData()),"point"===f.legendType&&e.generatePoints(),c&&(g[0]&&g[0].remove?g[0].remove(!1):(g.shift(),e.updateParallelArrays(i,"shift"),h.shift())),e.isDirty=!0,e.isDirtyData=!0,b&&(e.getAttribs(),k.redraw())},removePoint:function(a,b,c){var d=this,e=d.data,f=e[a],g=d.points,h=d.chart,i=function(){g&&g.length===e.length&&g.splice(a,1),e.splice(a,1),d.options.data.splice(a,1),d.updateParallelArrays(f||{series:d},"splice",a,1),f&&f.destroy(),d.isDirty=!0,d.isDirtyData=!0,b&&h.redraw()};Ua(c,h),b=p(b,!0),f?f.firePointEvent("remove",null,i):i()},remove:function(a,b){var c=this,d=c.chart;H(c,"remove",null,function(){c.destroy(),d.isDirtyLegend=d.isDirtyBox=!0,d.linkSeries(),p(a,!0)&&d.redraw(b)})},update:function(a,b){var i,c=this,d=this.chart,e=this.userOptions,f=this.type,g=I[f].prototype,h=["group","markerGroup","dataLabelsGroup"];(a.type&&a.type!==f||void 0!==a.zIndex)&&(h.length=0),o(h,function(a){h[a]=c[a],delete c[a]}),a=D(e,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a),this.remove(!1);for(i in g)this[i]=A;u(this,I[a.type||f].prototype),o(h,function(a){c[a]=h[a]}),this.init(d,a),d.linkSeries(),p(b,!0)&&d.redraw(!1)}}),u(ka.prototype,{update:function(a,b){var c=this.chart,a=c.options[this.coll][this.options.index]=D(this.userOptions,a);this.destroy(!0),this._addedPlotLB=this.chart._labelPanes=A,this.init(c,u(a,{events:A})),c.isDirtyBox=!0,p(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);oa(b.axes,this),oa(b[c],this),b.options[c].splice(this.options.index,1),o(b[c],function(a,b){a.options.index=b}),this.destroy(),b.isDirtyBox=!0,p(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a},b)},setCategories:function(a,b){this.update({categories:a},b)}}),wa=pa(Q),I.line=wa,aa.area=D(da,{softThreshold:!1,threshold:0}),la=pa(Q,{type:"area",singleStacks:!1,getStackPoints:function(){var j,l,n,a=[],b=[],c=this.xAxis,d=this.yAxis,e=d.stacks[this.stackKey],f={},g=this.points,h=this.index,i=d.series,k=i.length,m=p(d.options.reversedStacks,!0)?1:-1;if(this.options.stacking){for(l=0;l=0&&k>l;)p=n.points[l],p||(l===h?f[g][c]=!0:j[l]&&(q=e[g].points[l])&&(d-=q[1]-q[0])),l+=m;f[g][1===a?"rightCliff":"leftCliff"]=d});else{for(l=h;l>=0&&k>l;){if(p=e[g].points[l]){n=p[1];break}l+=m}n=d.toPixels(n,!0),a.push({isNull:!0,plotX:c.toPixels(g,!0),plotY:n,yBottom:n})}})}return a},getGraphPath:function(a){var f,g,j,o,b=Q.prototype.getGraphPath,c=this.options,d=c.stacking,e=this.yAxis,h=[],i=[],k=this.index,m=e.stacks[this.stackKey],l=c.threshold,n=e.getThreshold(c.threshold),c=c.connectNulls||"percent"===d,s=function(b,c,f){var o,r,g=a[b],b=d&&m[g.x].points[k],p=g[f+"Null"]||0,f=g[f+"Cliff"]||0,g=!0;f||p?(o=(p?b[0]:b[1])+f,r=b[0]+f,g=!!p):!d&&a[c]&&a[c].isNull&&(o=r=l),void 0!==o&&(i.push({plotX:j,plotY:null===o?n:e.toPixels(o,!0),isNull:g}),h.push({plotX:j,plotY:null===r?n:e.toPixels(r,!0)}))},a=a||this.points;for(d&&(a=this.getStackPoints()),f=0;fa&&h>e?(h=t(a,e),k=2*e-h):a>h&&e>h&&(h=F(a,e),k=2*e-h),k>c&&k>e?(k=t(c,e),h=2*e-k):c>k&&e>k&&(k=F(c,e),h=2*e-k),b.rightContX=i,b.rightContY=k),b=["C",p(f.rightContX,f.plotX),p(f.rightContY,f.plotY),p(g,d),p(h,e),d,e],f.rightContX=f.rightContY=null,b}}),I.spline=wa,aa.areaspline=D(aa.area),la=la.prototype,wa=pa(wa,{type:"areaspline",getStackPoints:la.getStackPoints,getGraphPath:la.getGraphPath,setStackCliffs:la.setStackCliffs,drawGraph:la.drawGraph,drawLegendSymbol:J.drawRectangle}),I.areaspline=wa,aa.column=D(da,{borderColor:"#FFFFFF",borderRadius:0,groupPadding:.2,marker:null,pointPadding:.1,minPointLength:0,cropThreshold:50,pointRange:null,states:{hover:{brightness:.1,shadow:!1,halo:!1},select:{color:"#C0C0C0",borderColor:"#000000",shadow:!1}},dataLabels:{align:null,verticalAlign:null,y:null},softThreshold:!1,startFromThreshold:!0,stickyTracking:!1,tooltip:{distance:6},threshold:0}),wa=pa(Q,{type:"column",pointAttrToOptions:{stroke:"borderColor",fill:"color",r:"borderRadius"},cropShoulder:0,directTouch:!0,trackerGroups:["group","dataLabelsGroup"],negStacks:!0,init:function(){Q.prototype.init.apply(this,arguments);var a=this,b=a.chart;b.hasRendered&&o(b.series,function(b){b.type===a.type&&(b.isDirty=!0)})},getColumnMetrics:function(){var f,i,k,j,a=this,b=a.options,c=a.xAxis,d=a.yAxis,e=c.reversed,g={},h=0;return b.grouping===!1?h=1:o(a.chart.series,function(b){var i,c=b.options,e=b.yAxis;b.type===a.type&&b.visible&&d.len===e.len&&d.pos===e.pos&&(c.stacking?(f=b.stackKey,g[f]===A&&(g[f]=h++),i=g[f]):c.grouping!==!1&&(i=h++),b.columnIndex=i)}),i=F(P(c.transA)*(c.ordinalSlope||b.pointRange||c.closestPointRange||c.tickInterval||1),c.len),k=i*b.groupPadding,j=(i-2*k)/h,b=F(b.maxPointWidth||c.len,p(b.pointWidth,j*(1-2*b.pointPadding))),a.columnMetrics={width:b,offset:(j-b)/2+(k+((a.columnIndex||0)+(e?1:0))*j-i/2)*(e?-1:1)},a.columnMetrics},crispCol:function(a,b,c,d){var e=this.chart,f=this.borderWidth,g=-(f%2?.5:0),f=f%2?.5:1;return e.inverted&&e.renderer.isVML&&(f+=1),c=Math.round(a+c)+g,a=Math.round(a)+g,c-=a,d=Math.round(b+d)+f,g=P(b)<=.5&&d>.5,b=Math.round(b)+f,d-=b,g&&(b-=1,d+=1),{x:a,y:b,width:c,height:d}},translate:function(){var a=this,b=a.chart,c=a.options,d=a.borderWidth=p(c.borderWidth,a.closestPointRange*a.xAxis.transA<2?0:1),e=a.yAxis,f=a.translatedThreshold=e.getThreshold(c.threshold),g=p(c.minPointLength,5),h=a.getColumnMetrics(),i=h.width,k=a.barW=t(i,1+2*d),j=a.pointXOffset=h.offset;b.inverted&&(f-=.5),c.pointPadding&&(k=ua(k)),Q.prototype.translate.apply(a),o(a.points,function(c){var v,d=F(p(c.yBottom,f),9e4),h=999+P(d),h=F(t(-h,c.plotY),e.len+h),o=c.plotX+j,s=k,q=F(h,d),u=t(h,d)-q;P(u)g?d-g:f-(v?g:0)),c.barX=o,c.pointWidth=i,c.tooltipPos=b.inverted?[e.len+e.pos-b.plotLeft-h,a.xAxis.len-o-s/2,u]:[o+s/2,h+e.pos-b.plotTop,u],c.shapeType="rect",c.shapeArgs=a.crispCol(o,q,s,u)})},getSymbol:Aa,drawLegendSymbol:J.drawRectangle,drawGraph:Aa,drawPoints:function(){var f,g,a=this,b=this.chart,c=a.options,d=b.renderer,e=c.animationLimit||250;o(a.points,function(h){var i=h.plotY,k=h.graphic;i===A||isNaN(i)||null===h.y?k&&(h.graphic=k.destroy()):(f=h.shapeArgs,i=q(a.borderWidth)?{"stroke-width":a.borderWidth}:{},g=h.pointAttr[h.selected?"select":""]||a.pointAttr[""],k?(Oa(k),k.attr(i).attr(g)[b.pointCount●